package com.tiny.tinyweb.core.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用于设置期待状态的数据集文件群的注解类。该注解仅适用于用junit的{@link org.junit.Test}注解的方法。
 * 这些数据集文件会在测试执行后加载内存中，用以断言数据库中的数据状态是否满足期待值。
 *
 * @see {@link com.tiny.tinyweb.core.test.UnitTestDaoExecutionListener}
 * @author wxiaobin
 */
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface DaoTestDataExpected {
    /**
     * 数据集文件群的名称或相对于classpath的路径。如果使用文件名，该文件必须和测试类相对于classpath的路径相同。例如：</br>
     * 测试类：/src/test/TestSample.class；数据集文件：/resources/test/TestSample.xml
     *
     * @return 数据集文件群的名称或相对于classpath的路径
     */
    public String[] value();
}
